package com.industrial.im.service;

import com.industrial.im.domain.req.GroupReq;
import com.industrial.system.api.domain.SysUser;
import io.rong.models.Result;
import io.rong.models.response.UserGroupQueryResult;

import java.util.List;
import java.util.Map;

public interface ImGroupService {

    /**
     * <p>
     *     创建群组
     * </p>
     * @param groupReq
     * @return
     */
    Result createImGroup(GroupReq groupReq);

    /**
     * <p>
     *     查询用户所在的群组
     * </p>
     * @return
     */
    UserGroupQueryResult queryUserInGroup(String userId);

    /**
     * <p>
     *     查询群组内成员
     * </p>
     * @return
     */
    List<SysUser> queryGroupMembers(String groupId);

    /**
     * <p>
     *     解散群组
     * </p>
     * @return
     */
    Result dissolveGroup(Map<String, String> params);

    /**
     * <p>
     *     邀请用户入群
     * </p>
     * @param groupReq
     * @return
     */
    Result invitingUsersJoinGroup(GroupReq groupReq);

    /**
     * <p>
     *     移除群中的成员
     * </p>
     * @param params userId 被移除的用户，groupId 群组Id
     * @return
     */
    Result removeGroupUser(Map<String, String> params);
}
